var $dataInfo = $('#companyTable');

//防止表头与表格不对齐
$(window).resize(function () {
    $dataInfo.bootstrapTable('resetView');
});


$(function () {
    dataInfoInit();
    getProvince();

    $('form select').selectpicker({
        noneSelectedText: '请选择',
        sanitize: true,
        size: 12,
    });
});


/**
 * 公司管理
 */
function dataInfoInit() {
    //先销毁表格
    $dataInfo.bootstrapTable('destroy');
    $dataInfo.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/sysCompany/selectCompanyList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'accountId',
        idField: 'accountId',
        pageSize: globalPageSize,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: globalPageList,//可供选择的每页的行数
        fixedColumns: true,     // 冻结列
        fixedNumber: 4,         // 左侧固定列
        // fixedRightNumber: 1,    // 右侧固定列

        queryParams: queryParams,//查询参数
        columns: [
            {title: '主键', field: 'companyId', visible: false},
            {title: '序号', field: 'index', align: 'center', valign: 'middle', formatter: indexFormat},
            {title: '公司名称', field: 'companyName', align: 'left', valign: 'middle'},
            {title: '公司代码', field: 'companyCode', align: 'left', valign: 'middle'},
            {title: '省份名称', field: 'provinceName', align: 'left', valign: 'middle'},
            {title: '城市名称', field: 'cityName', align: 'left', valign: 'middle'},
            {title: '删除状态', field: 'deleteStatus', align: 'left', valign: 'middle',formatter: deleteStatus},
            {title: '操作', field: 'operate', align: 'left',formatter: genderOpt}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

/**
 * --列表序列号
 */
function indexFormat(value, row, index) {
    return index + 1;
}


/**
 * 自定义操作列内容
 */
function genderOpt(value, row, index) {
    return [
/*        '<a type="button" id="initialPassword" class="btn btn-xs btn-default m-r-5 show-btn" title="重置密码" onclick="initialPassword(\''+row.accountId+'\');" data-toggle="tooltip">重置密码</a>',
        '<a type="button" id="bindCall" class="btn btn-xs btn-default m-r-5 show-btn" title="绑定电话" onclick="bindCall(\''+row.accountId+'\');" data-toggle="tooltip">绑定电话</a>'*/
    ].join('');
}

function deleteStatus(value, row, index) {
    if(row.deleteStatus==0){
        return "未删除"
    }else {
        return "已删除"
    }
}

/**
 * 搜索功能
 */
function searchCompanyList() {
    $dataInfo.bootstrapTable('refreshOptions', {pageNumber: 1, queryParams: queryParams});
}

/**
 * 普通查询参数
 */
function queryParams(params) {
    params.pageSize = params.limit;
    params.pageIndex = (params.offset / params.limit) + 1;
    params.sortName = params.sort; //排序列名
    params.sortOrder = params.order;//排序方式
    //普通搜索条件
    params.companyName = $.trim($('#companyName').val());  //用户名
    return params;
}

/**
 * 新增公司弹窗
 */
function addCompany() {
    $('#addCompany').modal('show');
}

// 渲染城市列表
function getProvince() {
    let provinceNames = [];
    $.each(cityJson[0], function (key, value) {
        provinceNames.push('<option value="' + key + '">' + value + '</option>')
    });

    $('#province').html(provinceNames.join(''));
    getCity('110000')
}

// 根据省获取市
function getCity(provinceId) {
    $('#city').html('');
    let key = '0,' + provinceId;
    let cityNames = [];
    $.each(cityJson[key], function (key, value) {
        cityNames.push('<option value="' + key + '">' + value + '</option>')
    });
    $('#city').html(cityNames.join(''));
}

// 切换城市
function changeCity() {
    getCity($('#province').val());
    $('form select').selectpicker('refresh');
}


/**
 * 保存公司
 */
function saveCompany() {

    //公司名称
    var companyName =  $.trim($("#companyNameAdd").val());
    //公司代码
    var companyCode = $.trim($("#companyCode").val());
    //省份id
    var provinceCode = $('#province').val();
    //公司名称
    var provinceName = $("#province").find("option:selected").text();
    //城市id
    var cityCode = $('#city').val();
    //城市名称
    var cityName =  $("#city").find("option:selected").text();

    if(!companyName){
        promptInfo("公司名称不能为空!");
        return;
    }

    if(!companyCode){
        promptInfo("公司代码不能为空!");
        return;
    }

    if(!provinceCode){
        promptInfo("请选择省份!");
        return;
    }

    if(!cityCode){
        promptInfo("请选择城市!");
        return;
    }

    var jsonData = {
        "companyName": companyName,
        "companyCode": companyCode,
        "provinceCode": provinceCode,
        "provinceName":provinceName,
        "cityCode": cityCode,
        "cityName":cityName
    }


    $.ajax({
        url: '/sysCompany/addCompany',
        type: 'POST',
        dataType: "json",
        contentType: "application/json;charset=utf-8",
        data: JSON.stringify(jsonData),
        success: (function (data) {
            if(data.code == '000000'){
                $.alert({
                    title: '提示',
                    content: '保存成功！',
                    buttons: {
                        confirm: {
                            text: '确认',
                            btnClass: 'btn-primary',
                            action: function () {
                                $('#addCompany').modal('hide');
                                $dataInfo.bootstrapTable('refreshOptions', {pageNumber: 1});
                            }
                        }
                    }
                });
            } else if(data.code == 'CV0001'){
                //账号名已经存在
                $.alert(data.message);
            }else {
                $.alert("保存失败");
            }
        }),
        error: (function (res) {
            $.alert("保存失败");
        })
    })

    /**
     * 提示信息
     * @param content  提示内容
     */
    function promptInfo(content) {
        $.alert({
            title: '温馨提示',
            content: content,
            buttons: {
                confirm: {
                    text: '确认',
                    btnClass: 'btn-primary'
                }
            }
        });
    }

}